Passed
Pull Request — master (#78)
by Mathieu
01:25
created

GetDailyRateAction   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 18
dl 0
loc 18
c 0
b 0
f 0
rs 10

1 Function

Rating   Name   Duplication   Size   Complexity  
A index 0 8 2
1
import {
2
  Controller,
3
  Inject,
4
  BadRequestException,
5
  UseGuards,
6
  Param,
7
  Get
8
} from '@nestjs/common';
9
import {AuthGuard} from '@nestjs/passport';
10
import {ApiUseTags, ApiBearerAuth, ApiOperation} from '@nestjs/swagger';
11
import {IQueryBus} from 'src/Application/IQueryBus';
12
import {DailyRateView} from 'src/Application/Billing/View/DailyRate/DailyRateView';
13
import {GetDailyRateByIdQuery} from 'src/Application/Billing/Query/DailyRate/GetDailyRateByIdQuery';
14
import {IdDTO} from 'src/Infrastructure/Common/DTO/IdDTO';
15
16
@Controller('daily_rates')
17
@ApiUseTags('Billing')
18
@ApiBearerAuth()
19
@UseGuards(AuthGuard('bearer'))
20
export class GetDailyRateAction {
21
  constructor(
22
    @Inject('IQueryBus')
23
    private readonly queryBus: IQueryBus
24
  ) {}
25
26
  @Get(':id')
27
  @ApiOperation({title: 'Get daily rate'})
28
  public async index(@Param() dto: IdDTO): Promise<DailyRateView> {
29
    try {
30
      return await this.queryBus.execute(new GetDailyRateByIdQuery(dto.id));
31
    } catch (e) {
32
      throw new BadRequestException(e.message);
33
    }
34
  }
35
}
36